package com.sophossystems.client.asmon.dto;

import java.io.Serializable;

import java.util.Date;
import java.util.List;

public class ClienteDTO implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 7622932566549488334L;

	/**
	 * This attribute maps to the column idCliente in the CLIENTE table.
	 */
	protected int idCliente;

	/**
	 * This attribute maps to the column idTipoCliente in the CLIENTE table.
	 */
	protected int idTipoCliente;

	/**
	 * This attribute represents whether the primitive attribute idTipoCliente
	 * is null.
	 */
	protected boolean idTipoClienteNull = true;

	/**
	 * This attribute maps to the column id_direccion in the CLIENTE table.
	 */
	protected int idDireccion;

	/**
	 * This attribute represents whether the primitive attribute idDireccion is
	 * null.
	 */
	protected boolean idDireccionNull = true;

	/**
	 * This attribute maps to the column idStatus in the CLIENTE table.
	 */
	protected int idStatus;

	/**
	 * This attribute represents whether the primitive attribute idStatus is
	 * null.
	 */
	protected boolean idStatusNull = true;

	/**
	 * This attribute maps to the column idRecolectaDoc in the CLIENTE table.
	 */
	protected int idRecolectaDoc;

	/**
	 * This attribute represents whether the primitive attribute idRecolectaDoc
	 * is null.
	 */
	protected boolean idRecolectaDocNull = true;

	/**
	 * This attribute maps to the column idContadorAsig in the CLIENTE table.
	 */
	protected int idContadorAsig;

	/**
	 * This attribute represents whether the primitive attribute idContadorAsig
	 * is null.
	 */
	protected boolean idContadorAsigNull = true;

	/**
	 * This attribute maps to the column idCoordinador in the CLIENTE table.
	 */
	protected int idCoordinador;

	/**
	 * This attribute represents whether the primitive attribute idCoordinador
	 * is null.
	 */
	protected boolean idCoordinadorNull = true;

	/**
	 * This attribute maps to the column idContactoVenta in the CLIENTE table.
	 */
	protected int idContactoVenta;

	/**
	 * This attribute represents whether the primitive attribute idContactoVenta
	 * is null.
	 */
	protected boolean idContactoVentaNull = true;

	/**
	 * This attribute maps to the column fechaCaptura in the CLIENTE table.
	 */
	protected Date fechaCaptura;

	protected String rfc;
	
	protected boolean registrado = false;

	protected DireccionDTO direccion;
	protected List<DireccionDTO> listaDirecciones;
	protected FacturaDTO facturacion;
	protected ServiciosDTO servicios;
	protected DocumentosDTO documentos;
	protected RepresentanteDocDTO representanteDoc;
	protected RepresentanteLegalDTO representanteLegal;
	
	
	
	/**
	 * @return the representanteDoc
	 */
	public RepresentanteDocDTO getRepresentanteDoc() {
		return representanteDoc;
	}

	/**
	 * @param representanteDoc the representanteDoc to set
	 */
	public void setRepresentanteDoc(RepresentanteDocDTO representanteDoc) {
		this.representanteDoc = representanteDoc;
	}

	/**
	 * @return the representanteLegal
	 */
	public RepresentanteLegalDTO getRepresentanteLegal() {
		return representanteLegal;
	}

	/**
	 * @param representanteLegal the representanteLegal to set
	 */
	public void setRepresentanteLegal(RepresentanteLegalDTO representanteLegal) {
		this.representanteLegal = representanteLegal;
	}

	/**
	 * @return the documentos
	 */
	public DocumentosDTO getDocumentos() {
		return documentos;
	}

	/**
	 * @param documentos the documentos to set
	 */
	public void setDocumentos(DocumentosDTO documentos) {
		this.documentos = documentos;
	}

	/**
	 * @return the servicios
	 */
	public ServiciosDTO getServicios() {
		return servicios;
	}

	/**
	 * @param servicios
	 *            the servicios to set
	 */
	public void setServicios(ServiciosDTO servicios) {
		this.servicios = servicios;
	}

	/**
	 * @return the facturacion
	 */
	public FacturaDTO getFacturacion() {
		return facturacion;
	}

	/**
	 * @param facturacion
	 *            the facturacion to set
	 */
	public void setFacturacion(FacturaDTO facturacion) {
		this.facturacion = facturacion;
	}

	/**
	 * @return the direccion
	 */
	public DireccionDTO getDireccion() {
		return direccion;
	}

	/**
	 * @param direccion
	 *            the direccion to set
	 */
	public void setDireccion(DireccionDTO direccion) {
		this.direccion = direccion;
	}
	
	

	/**
	 * @return the listaDirecciones
	 */
	public List<DireccionDTO> getListaDirecciones() {
		return listaDirecciones;
	}

	/**
	 * @param listaDirecciones the listaDirecciones to set
	 */
	public void setListaDirecciones(List<DireccionDTO> listaDirecciones) {
		this.listaDirecciones = listaDirecciones;
	}

	/**
	 * @return the recoleccionDocumentos
	 */
	public RecolectaDocDTO getRecoleccionDocumentos() {
		return recoleccionDocumentos;
	}

	/**
	 * @param recoleccionDocumentos
	 *            the recoleccionDocumentos to set
	 */
	public void setRecoleccionDocumentos(RecolectaDocDTO recoleccionDocumentos) {
		this.recoleccionDocumentos = recoleccionDocumentos;
	}

	protected RecolectaDocDTO recoleccionDocumentos;

	/**
	 * @return the rfc
	 */
	public String getRfc() {
		return rfc;
	}

	/**
	 * @param rfc
	 *            the rfc to set
	 */
	public void setRfc(String rfc) {
		this.rfc = rfc;
	}

	/**
	 * Method 'Cliente'
	 * 
	 */
	public ClienteDTO() {
	}

	/**
	 * Method 'getIdCliente'
	 * 
	 * @return int
	 */
	public int getIdCliente() {
		return idCliente;
	}

	/**
	 * Method 'setIdCliente'
	 * 
	 * @param idCliente
	 */
	public void setIdCliente(int idCliente) {
		this.idCliente = idCliente;
	}

	/**
	 * Method 'getIdTipoCliente'
	 * 
	 * @return int
	 */
	public int getIdTipoCliente() {
		return idTipoCliente;
	}

	/**
	 * Method 'setIdTipoCliente'
	 * 
	 * @param idTipoCliente
	 */
	public void setIdTipoCliente(int idTipoCliente) {
		this.idTipoCliente = idTipoCliente;
		this.idTipoClienteNull = false;
	}

	/**
	 * Method 'setIdTipoClienteNull'
	 * 
	 * @param value
	 */
	public void setIdTipoClienteNull(boolean value) {
		this.idTipoClienteNull = value;
	}

	/**
	 * Method 'isIdTipoClienteNull'
	 * 
	 * @return boolean
	 */
	public boolean isIdTipoClienteNull() {
		return idTipoClienteNull;
	}

	/**
	 * Method 'getIdDireccion'
	 * 
	 * @return int
	 */
	public int getIdDireccion() {
		return idDireccion;
	}

	/**
	 * Method 'setIdDireccion'
	 * 
	 * @param idDireccion
	 */
	public void setIdDireccion(int idDireccion) {
		this.idDireccion = idDireccion;
		this.idDireccionNull = false;
	}

	/**
	 * Method 'setIdDireccionNull'
	 * 
	 * @param value
	 */
	public void setIdDireccionNull(boolean value) {
		this.idDireccionNull = value;
	}

	/**
	 * Method 'isIdDireccionNull'
	 * 
	 * @return boolean
	 */
	public boolean isIdDireccionNull() {
		return idDireccionNull;
	}

	/**
	 * Method 'getIdStatus'
	 * 
	 * @return int
	 */
	public int getIdStatus() {
		return idStatus;
	}

	/**
	 * Method 'setIdStatus'
	 * 
	 * @param idStatus
	 */
	public void setIdStatus(int idStatus) {
		this.idStatus = idStatus;
		this.idStatusNull = false;
	}

	/**
	 * Method 'setIdStatusNull'
	 * 
	 * @param value
	 */
	public void setIdStatusNull(boolean value) {
		this.idStatusNull = value;
	}

	/**
	 * Method 'isIdStatusNull'
	 * 
	 * @return boolean
	 */
	public boolean isIdStatusNull() {
		return idStatusNull;
	}

	/**
	 * Method 'getIdRecolectaDoc'
	 * 
	 * @return int
	 */
	public int getIdRecolectaDoc() {
		return idRecolectaDoc;
	}

	/**
	 * Method 'setIdRecolectaDoc'
	 * 
	 * @param idRecolectaDoc
	 */
	public void setIdRecolectaDoc(int idRecolectaDoc) {
		this.idRecolectaDoc = idRecolectaDoc;
		this.idRecolectaDocNull = false;
	}

	/**
	 * Method 'setIdRecolectaDocNull'
	 * 
	 * @param value
	 */
	public void setIdRecolectaDocNull(boolean value) {
		this.idRecolectaDocNull = value;
	}

	/**
	 * Method 'isIdRecolectaDocNull'
	 * 
	 * @return boolean
	 */
	public boolean isIdRecolectaDocNull() {
		return idRecolectaDocNull;
	}

	/**
	 * Method 'getIdContadorAsig'
	 * 
	 * @return int
	 */
	public int getIdContadorAsig() {
		return idContadorAsig;
	}

	/**
	 * Method 'setIdContadorAsig'
	 * 
	 * @param idContadorAsig
	 */
	public void setIdContadorAsig(int idContadorAsig) {
		this.idContadorAsig = idContadorAsig;
		this.idContadorAsigNull = false;
	}

	/**
	 * Method 'setIdContadorAsigNull'
	 * 
	 * @param value
	 */
	public void setIdContadorAsigNull(boolean value) {
		this.idContadorAsigNull = value;
	}

	/**
	 * Method 'isIdContadorAsigNull'
	 * 
	 * @return boolean
	 */
	public boolean isIdContadorAsigNull() {
		return idContadorAsigNull;
	}

	/**
	 * Method 'getIdCoordinador'
	 * 
	 * @return int
	 */
	public int getIdCoordinador() {
		return idCoordinador;
	}

	/**
	 * Method 'setIdCoordinador'
	 * 
	 * @param idCoordinador
	 */
	public void setIdCoordinador(int idCoordinador) {
		this.idCoordinador = idCoordinador;
		this.idCoordinadorNull = false;
	}

	/**
	 * Method 'setIdCoordinadorNull'
	 * 
	 * @param value
	 */
	public void setIdCoordinadorNull(boolean value) {
		this.idCoordinadorNull = value;
	}

	/**
	 * Method 'isIdCoordinadorNull'
	 * 
	 * @return boolean
	 */
	public boolean isIdCoordinadorNull() {
		return idCoordinadorNull;
	}

	/**
	 * Method 'getIdContactoVenta'
	 * 
	 * @return int
	 */
	public int getIdContactoVenta() {
		return idContactoVenta;
	}

	/**
	 * Method 'setIdContactoVenta'
	 * 
	 * @param idContactoVenta
	 */
	public void setIdContactoVenta(int idContactoVenta) {
		this.idContactoVenta = idContactoVenta;
		this.idContactoVentaNull = false;
	}

	/**
	 * Method 'setIdContactoVentaNull'
	 * 
	 * @param value
	 */
	public void setIdContactoVentaNull(boolean value) {
		this.idContactoVentaNull = value;
	}

	/**
	 * Method 'isIdContactoVentaNull'
	 * 
	 * @return boolean
	 */
	public boolean isIdContactoVentaNull() {
		return idContactoVentaNull;
	}

	/**
	 * Method 'getFechaCaptura'
	 * 
	 * @return Date
	 */
	public Date getFechaCaptura() {
		return fechaCaptura;
	}

	/**
	 * Method 'setFechaCaptura'
	 * 
	 * @param fechaCaptura
	 */
	public void setFechaCaptura(Date fechaCaptura) {
		this.fechaCaptura = fechaCaptura;
	}

	
	
	/**
	 * @return the registrado
	 */
	public boolean isRegistrado() {
		return registrado;
	}

	/**
	 * @param registrado the registrado to set
	 */
	public void setRegistrado(boolean registrado) {
		this.registrado = registrado;
	}

	/**
	 * Method 'equals'
	 * 
	 * @param _other
	 * @return boolean
	 */
	@Override
	public boolean equals(Object _other) {
		if (_other == null) {
			return false;
		}

		if (_other == this) {
			return true;
		}

		if (!(_other instanceof ClienteDTO)) {
			return false;
		}

		final ClienteDTO _cast = (ClienteDTO) _other;
		if (idCliente != _cast.idCliente) {
			return false;
		}

		if (idTipoCliente != _cast.idTipoCliente) {
			return false;
		}

		if (idTipoClienteNull != _cast.idTipoClienteNull) {
			return false;
		}

		if (idDireccion != _cast.idDireccion) {
			return false;
		}

		if (idDireccionNull != _cast.idDireccionNull) {
			return false;
		}

		if (idStatus != _cast.idStatus) {
			return false;
		}

		if (idStatusNull != _cast.idStatusNull) {
			return false;
		}

		if (idRecolectaDoc != _cast.idRecolectaDoc) {
			return false;
		}

		if (idRecolectaDocNull != _cast.idRecolectaDocNull) {
			return false;
		}

		if (idContadorAsig != _cast.idContadorAsig) {
			return false;
		}

		if (idContadorAsigNull != _cast.idContadorAsigNull) {
			return false;
		}

		if (idCoordinador != _cast.idCoordinador) {
			return false;
		}

		if (idCoordinadorNull != _cast.idCoordinadorNull) {
			return false;
		}

		if (idContactoVenta != _cast.idContactoVenta) {
			return false;
		}

		if (idContactoVentaNull != _cast.idContactoVentaNull) {
			return false;
		}

		if (fechaCaptura == null ? _cast.fechaCaptura != fechaCaptura
				: !fechaCaptura.equals(_cast.fechaCaptura)) {
			return false;
		}

		return true;
	}

	/**
	 * Method 'hashCode'
	 * 
	 * @return int
	 */
	@Override
	public int hashCode() {
		int _hashCode = 0;
		_hashCode = 29 * _hashCode + idCliente;
		_hashCode = 29 * _hashCode + idTipoCliente;
		_hashCode = 29 * _hashCode + (idTipoClienteNull ? 1 : 0);
		_hashCode = 29 * _hashCode + idDireccion;
		_hashCode = 29 * _hashCode + (idDireccionNull ? 1 : 0);
		_hashCode = 29 * _hashCode + idStatus;
		_hashCode = 29 * _hashCode + (idStatusNull ? 1 : 0);
		_hashCode = 29 * _hashCode + idRecolectaDoc;
		_hashCode = 29 * _hashCode + (idRecolectaDocNull ? 1 : 0);
		_hashCode = 29 * _hashCode + idContadorAsig;
		_hashCode = 29 * _hashCode + (idContadorAsigNull ? 1 : 0);
		_hashCode = 29 * _hashCode + idCoordinador;
		_hashCode = 29 * _hashCode + (idCoordinadorNull ? 1 : 0);
		_hashCode = 29 * _hashCode + idContactoVenta;
		_hashCode = 29 * _hashCode + (idContactoVentaNull ? 1 : 0);
		if (fechaCaptura != null) {
			_hashCode = 29 * _hashCode + fechaCaptura.hashCode();
		}

		return _hashCode;
	}

	/**
	 * Method 'createPk'
	 * 
	 * @return ClientePk
	 */
	public ClientePkDTO createPk() {
		return new ClientePkDTO(idCliente);
	}

	/**
	 * Method 'toString'
	 * 
	 * @return String
	 */
	@Override
	public String toString() {
		StringBuffer ret = new StringBuffer();
		ret.append("com.sophossystems.client.asmon.dto.Cliente: ");
		ret.append("idCliente=" + idCliente);
		ret.append(", idTipoCliente=" + idTipoCliente);
		ret.append(", idDireccion=" + idDireccion);
		ret.append(", idStatus=" + idStatus);
		ret.append(", idRecolectaDoc=" + idRecolectaDoc);
		ret.append(", idContadorAsig=" + idContadorAsig);
		ret.append(", idCoordinador=" + idCoordinador);
		ret.append(", idContactoVenta=" + idContactoVenta);
		ret.append(", fechaCaptura=" + fechaCaptura);
		return ret.toString();
	}

}
